Вторая книга (Графовые алгоритмы и структуры данных) из серии Совершенный алгоритм Тима Рафгардена является продолжением, по сути, единого цикла лекций. Автор не только сохранил стиль первой книги, но и часто ссылается на материал, который был в ней преподнесён. Стиль обоих книг я считаю очень удачным. А именно, детальное и всестороннее изложение небольшого количества тем доступным языком.
Снова, это не каталог решений, а именно лекции. Поэтому автор далеко не сразу дает готовые алгоритмы. По сути, автор рассказывает как к этим алгоритмам можно прийти. Либо пробуя разные варианты, либо постепенно улучшая решения. Так например, поиск кратчайшего пути:
-
Начинается с обхода в ширину.
-
Вводится модификация со взятием кратчайшего ребра при обходе.
-
Показывается, почему это не работает на отрицательных длинах, и доказывается, почему работает на неотрицательных.
-
Приводится анализ временной сложности.
-
Ставится задача быстрого поиска рёбер с минимальной длиной.
-
Вводится понятие кучи,